// 认证相关类型定义

/**
 * 通用API响应格式
 */
export interface ApiResponse<T = any> {
  /** 状态码，0表示成功 */
  code: number
  /** 响应消息 */
  message: string
  /** 响应数据 */
  data: T
  /** 请求ID */
  requestId: string
}

/**
 * 用户登录请求参数
 */
export interface LoginRequest {
  /** 用户名 */
  username: string
  /** 密码 */
  password: string
}

/**
 * 用户注册请求参数
 */
export interface RegisterRequest {
  /** 用户名 */
  username: string
  /** 密码 */
  password: string
  /** 邮箱 */
  email?: string
  /** 手机号 */
  phone?: string
}

/**
 * 用户信息
 */
export interface UserInfo {
  /** 用户ID */
  id: number
  /** 用户名 */
  username: string
  /** 邮箱 */
  email?: string
  /** 手机号 */
  phone?: string
  /** 头像 */
  avatar?: string
  /** 昵称 */
  nickname?: string
  /** 创建时间 */
  createdAt: string
  /** 更新时间 */
  updatedAt: string
}

/**
 * 登录响应数据
 */
export interface LoginResponse {
  /** 访问令牌 */
  accessToken: string
  /** 刷新令牌 */
  refreshToken: string
  /** 用户信息 */
  user: UserInfo
}

/**
 * 认证状态
 */
export interface AuthState {
  /** 用户信息 */
  user: UserInfo | null
  /** 访问令牌 */
  token: string | null
  /** 是否已认证 */
  isAuthenticated: boolean
}